www.gusucode.com > Weighted Differential Evolution Algorithm (WDE) > Weighted Differential Evolution Algorithm (WDE)/cc_wde/classic_benchmark_problems/penalized.m
function ObjVal = Penalized(Chrom,switch1); % Compute population parameters [Nind,Nvar] = size(Chrom); x=Chrom; y=1+0.25*(Chrom+1); a=10; k=100; m=4; top=0; top1=0; u=zeros(size(Chrom)); for i=1:Nind for j=1:Nvar-1 u(i,j)=uhesapla(Chrom,i,j,a,k,m); top=top+(sqr(y(i,j)-1)*(1+10*sqr(sin(pi*y(i,j+1))))); top1=top1+u(i,j); end; u(i,Nvar)=uhesapla(Chrom,i,Nvar,a,k,m); top1=top1+u(i,Nvar); ObjVal(i)=((pi/Nvar)*(10*sqr(sin(pi*y(i,1)))+top+sqr(y(i,Nvar)-1)))+top1; top=0; top1=0; end ObjVal=ObjVal'; function y=sqr(x) y=x*x; function y=power(x,a) y=x^a; function u=uhesapla(chrom,i,j,a,k,m) if chrom(i,j)>a u=k*(chrom(i,j)-a)^m; elseif ((chrom(i,j)<=a)||(chrom(i,j)>=-a)) u=0; else u=k*(-chrom(i,j)-a)^m; end; return